import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from '@/stores'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
// createRouter 创建路由实例，===> new VueRouter()
// history 是路由模式，hash模式，history模式
// createWebHistory() 是开启history模块   http://xxx/user
// createWebHashHistory() 是开启hash模式    http://xxx/#/user

// vite 的配置 import.meta.env.BASE_URL 是路由的基准地址，默认是 ’/‘
// https://vitejs.dev/guide/build.html#public-base-path
// 如果将来你部署的域名路径是：http://xxx/my-path/user
// vite.config.ts  添加配置  base: my-path，路由这就会加上 my-path 前缀了

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    { path: '/login', component: () => import('@/views/Login/index.vue'),meta:{ title:'登录'}},
    { path: '/', 
      redirect:'/home',
      component: () => import('@/views/Layout/index.vue'),
      children:[
        {path: '/article', component: () => import('@/views/Article/index.vue'),meta:{ title:'健康百科'}},
        {path: '/home', component: () => import('@/views/Home/index.vue'),meta:{ title:'首页'}},
        {path: '/notify', component: () => import('@/views/Notify/index.vue'),meta:{ title:'消息中心'}},
        {path: '/user', component: () => import('@/views/User/index.vue'),meta:{ title:'我的'}}
      ]
    },
    {path:'/user/patient',component:()=>import('@/views/User/PatientPage.vue'),meta:{ title:'患者档案'}},
    {path:'/consult/fast',component:()=>import('@/views/Consult/ConsultFast.vue'),meta:{title:'极速问诊'}},
    {path:'/consult/dep',component:()=>import('@/views/Consult/ConsultDep.vue'),meta:{title:'选择科室'}},
    {path:'/consult/illness',component:()=>import('@/views/Consult/ConsultIllness.vue'),meta:{title:'病情描述'}},
    {path:'/consult/pay',component:()=>import('@/views/Consult/ConsultPay.vue'),meta:{title:'问诊支付'}},
    {path:'/room',component:()=>import('@/views/Room/index.vue'),meta:{title:'问诊室'}, beforeEnter: (to) => {
      if (to.query.payResult==='false') return '/user/consult'
    } },
    {path:'/user/consult',component:()=>import('@/views/User/ConsultPage.vue'),meta:{title:'问诊记录'}},
    {path:'/user/consult/:id',component:()=>import('@/views/User/ConsultDetail.vue'),meta:{title:'问诊详情'}},
    {path:'/order/pay',component:()=>import('@/views/Order/OrderPay.vue'),meta:{title:'药品支付'}},
    {path:'/order/pay/result',component:()=>import('@/views/Order/OrderPayResult.vue'),meta:{title:'药品支付结果'}},
    {path:'/order/:id',component:()=>import('@/views/Order/OrderDetail.vue'),meta:{title:'药品订单详情'}},
    {path:'/order/logistics/:id',component:()=>import('@/views/Order/OrderLogistics.vue'),meta:{title:'物流详情'}}
  ]

})

router.beforeEach(to=>{
  NProgress.start()
  document.title='优医问诊-'+(to.meta.title || '')
  
  const whiltList=['/login','/login/callback']
  const store=useUserStore()
  if (!store.user?.token && !whiltList.includes(to.path)) return '/login'
})
router.afterEach(to=>{
  NProgress.done()
})
NProgress.configure({
  showSpinner: false
})

export default router